

package com.zdkj.subway.rca.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.zdkj.subway.rca.dto.SwCkClearRulesDTO;
import com.zdkj.subway.rca.dto.in.OneSidedSales;
import com.zdkj.subway.rca.dto.in.OneSidedSalesDTO;
import com.zdkj.subway.rca.entity.SwCkClearRules;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;


/**
 * 清分规则管理
 *
 * @author stw
 * @date 2020-11-08 22:46:57
 */
public interface SwCkClearRulesService extends IService<SwCkClearRules> {
    /**
     * 运营商获取
     * @return
     */
	List<Map<String,String>> getServiceMap();
    /**
     * 运营商名称
     * @param serviceId
     * @return
     */
	String getServiceName (String serviceId);
    /**
     * 导出
     * @param ids
     * @param response
     */
	void export(List<Long> ids, HttpServletResponse response);
    //Boolean autoCompute(String startDate, String clearRules);
    /**
     * 保存清分规则
     * @param swCkClearRulesDTO
     * @return
     */
    boolean saveSwCkClearRules(SwCkClearRulesDTO swCkClearRulesDTO);
    /**
     * 更新清分规则
     * @param swCkClearRulesDTO
     * @return
     */
    boolean updateSwCkClearRules(SwCkClearRulesDTO swCkClearRulesDTO);
   
    
    /**
     * 自动按月计算清分比例
     * @param startDate
     * @param endDate
     * @return
     */
    Boolean autoComputeMonth(String startDate, String endDate);
    /**
     * 获取清分规则
     * @param id
     * @return
     */
    SwCkClearRulesDTO getDetailById(Long id);

    //
    /**
     * 自动按天计算清分比例
     * @param startDate
     * @param endDate
     * @return
     */
    Boolean autoComputeDay(String startDate, String endDate);
    /**
     * 获取清分规则列表
     * @return
     */
    List<SwCkClearRulesDTO> selectRules();
    /**
     * 获取清分规则MAP
     * @return
     */
	Map<String, String> selectRulesMap();

	
	/**
	 * 根据日期范围，获取各种清分类型对应的各个线路的清分比例
	 * @param startDate
	 * @param endDate
	 * @return
	 */
    Map<String,String> selectRulesDetailsMapByDate(String startDate,String endDate);
    
    /**
     * 根据日期范围，获取各种清分类型对应的运营商清分比例
     * @param startDate
     * @param endDate
     * @return
     */
    Map<String,String> selectRulesMapByDate(String startDate,String endDate);

    Boolean updateOneSidedSales(OneSidedSalesDTO oneSidedSalesDTO);

    List<OneSidedSales> getLineByOperator(String cleanDate);
}
